package com.zhu.pre.service;

import com.sanploy.common.domain.Cart;
import com.sanploy.common.domain.vo.CartVo;
import com.sanploy.common.vo.BaseException;

import java.util.List;

/**
 * Created by zhu yingzhi on 2017/9/6.
 * @author yingzhi zhu
 * 购物车逻辑处理接口类
 */
public interface CartService
{
    /**
     * 添加购物车
     * @param cart 购物车实体
     * @param token 请求token
     * @return 数据库影响行数
     * @throws BaseException 自定义异常
     */
    int addCart(Cart cart, String token) throws BaseException;

    /**
     * 查找某个用户的购物车
     * @param token 请求token
     * @return  数据库影响行数
     * @throws BaseException 自定义异常
     */
    List<CartVo> findUserCart(String token) throws BaseException;

    /**
     * 编辑用户的购物车
     * @param cartId 购物车id
     * @param token 请求token
     * @param number 数量
     * @return 数据库影响行数
     * @throws BaseException 自定义异常
     */
    int editCart(Long cartId, String token, int number) throws BaseException;

    /**
     * 查找用户购物车里的商品的条数
     * @param token 请求token
     * @return 购物车数量
     * @throws BaseException 自定义异常
     */
    int countCart(String token) throws BaseException;

    /**
     * 根据id 批量删除购物车的条目
     * @param token 请求token
     * @param cartId 购物车id
     * @return 数据库影响行数
     * @throws BaseException 自定义异常
     */
    int deleteCart(String token, String[] cartId) throws BaseException;
}
